﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Data.Sql;
using System.Data.SqlClient;
using BusinessLogicTier;
using DTO;

namespace QUANLYNHASACH
{
    public partial class FrmChiTietHangCC : Form
    {
        ChiTietHangCCBUG objcthcc = new ChiTietHangCCBUG();

        DataTable tbChiTietHangCC;
        DataSet dataset;
        public string macthcc = "";
        public string mancc;
        public string mahang;
        public string tenhangcc;
        public FrmChiTietHangCC()
        {
            InitializeComponent();
            Init();
        }

        private string RandomMaKhachHang()
        {
            string lastID;
            string kq;
            string kq1;
            tbChiTietHangCC = objcthcc.RandomMaKhachHang();
            if (tbChiTietHangCC.Rows.Count == 0)
                lastID = "MACTHCC0000";
            else
                lastID = tbChiTietHangCC.Rows[0][0].ToString();
            kq = Random.AutoCodeChiTietHCC(lastID);
            return kq;
        }

        private void Init()
        {
            //Lấy giá trị mã nhà cung cấp
            mancc = FrmNhaCungCap.strMaNCC;
            txt_MaNCC.Text = mancc;
            txt_MaNCC.Enabled = false;

            //Thêm cột STT cung cấp
            DataGridViewTextBoxColumn TextBoxSTT = new DataGridViewTextBoxColumn();
            TextBoxSTT.DataPropertyName = "STT";
            TextBoxSTT.HeaderText = "STT";
            TextBoxSTT.Width = 90;
            TextBoxSTT.ReadOnly = true;
            dataGridView_ChiTietHangCungCap.Columns.Add(TextBoxSTT);

            //Thêm cột STT cung cấp
            DataGridViewTextBoxColumn TextBoxMACTHCC = new DataGridViewTextBoxColumn();
            TextBoxMACTHCC.DataPropertyName = "MACTHCC";
            TextBoxMACTHCC.HeaderText = "Mã Chi Tiết hàng Cung Cấp";
            TextBoxMACTHCC.Width = 170;
            TextBoxMACTHCC.ReadOnly = true;
            dataGridView_ChiTietHangCungCap.Columns.Add(TextBoxMACTHCC);

            //Thêm cột mã hàng
            DataGridViewComboBoxColumn ColumnMaHang = new DataGridViewComboBoxColumn();
            ColumnMaHang.DataPropertyName = "MAHANG";
            ColumnMaHang.HeaderText = "Mã Hàng";
            ColumnMaHang.Width = 130;
            ColumnMaHang.DataSource = objcthcc.GetMaHang();
            ColumnMaHang.ValueMember = "MAHANG";
            ColumnMaHang.DisplayMember = "MAHANG";
            dataGridView_ChiTietHangCungCap.Columns.Add(ColumnMaHang);

            //Thêm cột tên hàng cung cấp
            DataGridViewTextBoxColumn TextBoxTenHangCC = new DataGridViewTextBoxColumn();
            TextBoxTenHangCC.DataPropertyName = "TENHANGCC";
            TextBoxTenHangCC.HeaderText = "Tên Hàng Cung Cấp";
            TextBoxTenHangCC.Width = 277;
            TextBoxTenHangCC.ReadOnly = true;
            dataGridView_ChiTietHangCungCap.Columns.Add(TextBoxTenHangCC);

            //Thêm màu vào Header
            dataGridView_ChiTietHangCungCap.EnableHeadersVisualStyles = false;
            dataGridView_ChiTietHangCungCap.ColumnHeadersDefaultCellStyle.BackColor = Color.Cyan;
        }

        private void LoadDuLieuLenDataGridView()
        {
            //Load dữ liệu từ database lên datagridview
            tbChiTietHangCC = objcthcc.GetCTHCC(mancc);
            int count = tbChiTietHangCC.Rows.Count;
            for (int i = 0; i < count; i++)
            {
                dataGridView_ChiTietHangCungCap.Rows.Add();
                DataRow dr = tbChiTietHangCC.Rows[i];
                macthcc = dr["MACTHCC"].ToString();
                dataGridView_ChiTietHangCungCap.Rows[i].Cells[1].Value = macthcc;

                mahang = dr["MAHANG"].ToString();
                dataGridView_ChiTietHangCungCap.Rows[i].Cells[2].Value = mahang;

                tenhangcc = dr["TENHANGCC"].ToString();
                dataGridView_ChiTietHangCungCap.Rows[i].Cells[3].Value = tenhangcc;
            }
        }

        //Random giá trị trên datagridview trước khi click vào
        private void dataGridView_ChiTietHangCungCap_RowPostPaint(object sender, DataGridViewRowPostPaintEventArgs e)
        {
            try
            {
                dataset = objcthcc.GetTenHang(dataGridView_ChiTietHangCungCap.Rows[e.RowIndex].Cells[2].Value.ToString());
                dataGridView_ChiTietHangCungCap.Rows[e.RowIndex].Cells[3].Value = dataset.Tables[0].Rows[0]["TENHANG"].ToString();
            }
            catch (Exception ex)
            {
                //MessageBox.Show(ex.Message);
            }
            
        }

        //Random giá trị trên datagridview trước khi click vào
        private void dataGridView_ChiTietHangCungCap_RowPrePaint(object sender, DataGridViewRowPrePaintEventArgs e)
        {
            try
            {
                //Random số thứ tự
                dataGridView_ChiTietHangCungCap.Rows[e.RowIndex].Cells[0].Value = e.RowIndex + 1;

                //Random chi tiết hàng cung cấp
                tbChiTietHangCC = objcthcc.GetCTHCC(mancc);
                int count = tbChiTietHangCC.Rows.Count;
                string lastID;
                string kq;
                if (e.RowIndex == count)
                {
                    lastID = RandomMaKhachHang();
                    dataGridView_ChiTietHangCungCap.Rows[e.RowIndex].Cells[1].Value = lastID;
                }              
                for (int i = count; i < 100; i++)
                {
                    if (e.RowIndex > count && e.RowIndex < 100)
                    {
                        lastID = dataGridView_ChiTietHangCungCap.Rows[count].Cells[1].Value.ToString();
                        kq = Random.AutoCodeChiTietHCC(lastID);
                        dataGridView_ChiTietHangCungCap.Rows[e.RowIndex].Cells[1].Value = kq;
                    }
                    count++;
                }
            }
            catch (Exception ex)
            {
                //MessageBox.Show(ex.Message);
            }
        }

        private void FrmChiTietHangCC_Load(object sender, EventArgs e)
        {
            
            LoadDuLieuLenDataGridView();
        }

        private void BTThem_Click(object sender, EventArgs e)
        {
            int count = dataGridView_ChiTietHangCungCap.Rows.Count;
            if (count <= 1)
            {
                MessageBox.Show("Xin điền thông tin cần thêm", "Infomation", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
            if (count > 1)
            {
                for (int i = 0; i < (count - 1); i++)
                {
                    mancc = txt_MaNCC.Text;
                    macthcc = dataGridView_ChiTietHangCungCap.Rows[i].Cells[1].Value.ToString().Trim();
                    mahang = dataGridView_ChiTietHangCungCap.Rows[i].Cells[2].Value.ToString().Trim();
                    tenhangcc = dataGridView_ChiTietHangCungCap.Rows[i].Cells[3].Value.ToString().Trim();
                    objcthcc.Insert(macthcc, mancc, mahang, tenhangcc);
                }
                MessageBox.Show("Thêm dữ liệu thành công", "Infomation", MessageBoxButtons.OK, MessageBoxIcon.Information);
            } 
        }

        private void BTThoat_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        private void BTXoa_Click(object sender, EventArgs e)
        {
            try
            {
                int CurentIndex = dataGridView_ChiTietHangCungCap.CurrentCell.RowIndex;
                int count = dataGridView_ChiTietHangCungCap.Rows.Count;
                macthcc = dataGridView_ChiTietHangCungCap.Rows[CurentIndex].Cells[1].Value.ToString().Trim();
                if (objcthcc.kiemtratontai(macthcc) == false)
                {
                    MessageBox.Show("Mã chi tiết hàng cung cấp không tồn tại trong Database",
                    "Error",
                    MessageBoxButtons.OK,
                    MessageBoxIcon.Error);
                }

                if (objcthcc.Delete(macthcc) == true)
                {
                    MessageBox.Show("Xóa dữ liệu thành công",
                    "Successfull",
                    MessageBoxButtons.OK,
                    MessageBoxIcon.Information);
                    dataGridView_ChiTietHangCungCap.Rows.Clear();
                    LoadDuLieuLenDataGridView();
                }
                
            }
            catch (Exception ex)
            {
                //MessageBox.Show(ex.Message);
            }
            
        }

        private void BTSua_Click(object sender, EventArgs e)
        {

        }

        private void BTRefresh_Click(object sender, EventArgs e)
        {
            
        }
    }
}
